localparam GPR_DSEL0_WB_PREV = 0;
localparam GPR_DSEL0_WB_ALU  = 1;
localparam GPR_DSEL0_WB_MUL  = 2;
localparam GPR_DSEL0_WB_EXTA = 3;

localparam GPR_DSEL0_EX3_PREV = 0;
localparam GPR_DSEL0_EX3_ADDR = 1;
localparam GPR_DSEL0_EX3_EXT  = 2;

localparam GPR_DSEL0_EX2_PREV = 0;
localparam GPR_DSEL0_EX2_MOVT = 1;
localparam GPR_DSEL0_EX2_CPSR = 2;
localparam GPR_DSEL0_EX2_SPSR = 3;

localparam GPR_DSEL0_EX1_BL   = 0;
localparam GPR_DSEL0_EX1_MOVW = 1;

localparam GPR_DSEL1_LD   = 0;
localparam GPR_DSEL1_MUL  = 1;

localparam NZCV_DSEL_RM   = 0;
localparam NZCV_DSEL_SPSR = 1;
localparam NZCV_DSEL_ALU  = 2;
localparam NZCV_DSEL_MUL  = 3;

localparam AIF_DSEL_RM   = 0;
localparam AIF_DSEL_SPSR = 1;
localparam AIF_DSEL_IMM  = 2;

localparam MODE_DSEL_RM   = 0;
localparam MODE_DSEL_SPSR = 1;
localparam MODE_DSEL_IMM  = 2;

localparam SPSR_DSEL_RM   = 0;
localparam SPSR_DSEL_CPSR = 1;

localparam ADDR_SEL_WB  = 0;
localparam ADDR_SEL_RN  = 1;
localparam ADDR_SEL_LSM = 2;

localparam ADDR_OFF_SEL_IMM  = 0;
localparam ADDR_OFF_SEL_ISH  = 1;
localparam ADDR_OFF_SEL_IMM8 = 2;
localparam ADDR_OFF_SEL_RM   = 3;
localparam ADDR_OFF_SEL_LSM  = 4;

localparam BR_DEST_EX1_SEL_OFF = 0;
localparam BR_DEST_EX1_SEL_RM  = 1;
localparam BR_DEST_EX1_SEL_IMM = 2;

// vim: ft=verilog
